What is bytes?
The 'bytes' npm package is a utility for parsing and formatting byte sizes. It allows users to easily convert between different units of bytes and parse strings with byte size information into numbers. It is useful for displaying file sizes in a human-readable format or for parsing user input into byte quantities.
What are bytes's main functionalities?
Parse byte size strings
This feature allows you to parse a string representing a byte size into an integer number of bytes. For example, passing '1000KB' will return 1000000.
"1000KB" // returns 1000000
Format bytes into strings
This feature allows you to format an integer number of bytes into a string with a unit. For example, passing 1024 will return '1KB'.
1024 // returns '1KB'
Specify the number of decimal places
This feature allows you to specify the number of decimal places when formatting bytes into a string. For example, passing an object with 1000 bytes and 1 decimal place will return '1.0KB'.
{ bytes: 1000, decimalPlaces: 1 } // returns '1.0KB'
Specify the unit of bytes
This feature allows you to specify the unit when formatting bytes. For example, passing an object with 1024 bytes and 'kB' as the unit will return '1kB'.
{ bytes: 1024, unit: 'kB' } // returns '1kB'
Other packages similar to bytes
filesize
The 'filesize' package provides similar functionality to 'bytes' by allowing users to convert byte amounts into human-readable strings. It offers more options for customization, such as setting the base, standard (SI or IEC), rounding method, and partials.
pretty-bytes
The 'pretty-bytes' package is another alternative to 'bytes' that converts byte values into a human-readable format. It supports negative numbers, localization, and can automatically choose the appropriate unit.
Bytes utility
Utility to parse a string bytes (ex: 1TB
) to bytes (1099511627776
) and vice-versa.
Installation
This is a Node.js module available through the
npm registry. Installation is done using the
npm install
command:
$ npm install bytes
Usage
var bytes = require('bytes');
bytes(number|string value, [options]): number|string|null
Default export function. Delegates to either bytes.format
or bytes.parse
based on the type of value
.
Arguments
Name | Type | Description |
---|
value | number |string | Number value to format or string value to parse |
options | Object | Conversion options for format |
Returns
Name | Type | Description |
---|
results | string |number |null | Return null upon error. Numeric value in bytes, or string value otherwise. |
Example
bytes(1024);
bytes('1KB');
bytes.format(number value, [options]): string|null
Format the given value in bytes into a string. If the value is negative, it is kept as such. If it is a float, it is
rounded.
Arguments
Name | Type | Description |
---|
value | number | Value in bytes |
options | Object | Conversion options |
Options
Property | Type | Description |
---|
decimalPlaces | number |null | Maximum number of decimal places to include in output. Default value to 2 . |
fixedDecimals | boolean |null | Whether to always display the maximum number of decimal places. Default value to false |
thousandsSeparator | string |null | Example of values: ' ' , ',' and '.' ... Default value to '' . |
unit | string |null | The unit in which the result will be returned (B/KB/MB/GB/TB). Default value to '' (which means auto detect). |
unitSeparator | string |null | Separator to use between number and unit. Default value to '' . |
Returns
Name | Type | Description |
---|
results | string |null | Return null upon error. String value otherwise. |
Example
bytes.format(1024);
bytes.format(1000);
bytes.format(1000, {thousandsSeparator: ' '});
bytes.format(1024 * 1.7, {decimalPlaces: 0});
bytes.format(1024, {unitSeparator: ' '});
bytes.parse(string|number value): number|null
Parse the string value into an integer in bytes. If no unit is given, or value
is a number, it is assumed the value is in bytes.
Supported units and abbreviations are as follows and are case-insensitive:
b
for byteskb
for kilobytesmb
for megabytesgb
for gigabytestb
for terabytespb
for petabytes
The units are in powers of two, not ten. This means 1kb = 1024b according to this parser.
Arguments
Name | Type | Description |
---|
value | string |number | String to parse, or number in bytes. |
Returns
Name | Type | Description |
---|
results | number |null | Return null upon error. Value in bytes otherwise. |
Example
bytes.parse('1KB');
bytes.parse('1024');
bytes.parse(1024);
License
MIT